The subject matter disclosed herein relates to distributed computer systems, and more specifically, distributed computer systems that utilize a version control system (VCS) to temporarily distribute files that frequently change to clients of the distributed computer systems.
Distributed computer systems consist of multiple autonomous computers that communicate through a computer network. The computers interact with each other to achieve a common goal. Many such distributed systems include distributed programs that are configured to run in the distributed computer system. One such example of a distributed computer program may be a model versioning manager (MVM).
An MVM is a software application that maintains a representation (model) of a system (e.g., a power distribution network). Updates to the model may be submitted via multiple clients (e.g., computers and/or processes) in a distributed network. The updates are sent in the form of jobs containing additions/deletions/modifications to the model. The MVM maintains the current state of the model as well as the historical changes that have taken place over time. The MVM system can thus provide the version of the entire model as it existed at a particular point in time. The MVM allows the exporting of a model version as a baseline (containing a snapshot of the model at a particular point) or as increments (which are applied to a particular version to bring the model to a new version). With increased numbers of clients present in distributed computer systems, utilization of the distributed programs can increase dramatically. For example, in MVMs the number of model modifications to the models can become quite numerous. Accordingly, the number of temporary files used in the distributed programs may also increase. The clients in the distributed computer system may desire access to these temporary files at the same time. Unfortunately, in many situations, access to the temporary files may only be granted to one client at a time. Further, as additional modifications are made, additional versions are stored creating a need for increased storage capacity.